package com.ce.server.service;

import com.ce.server.common.AdminVo;
import com.ce.server.common.RespBean;
import com.ce.server.common.RespPageBean;
import com.ce.server.pojo.Admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ce.server.pojo.Role;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 郑爽
 * @since 2021-11-14
 */
public interface IAdminService extends IService<Admin> {

  /**
   * 登录之后返回token
   *
   * @param account_no
   * @param password
   * @param request
   * @return
   */
  RespBean login(String account_no, String password, String code, HttpServletRequest request);

  /**
   * 根据用户名获取用户
   *
   * @param wno
   * @return
   */
  Admin getAdminByWno(String wno);

  /**
   * 根据账号查询所拥有的角色
   *
   * @param wno
   * @return
   */
  List<Role> getRoles(String wno);


  /**
   * @param admin
   * @return
   */
  Boolean updateAccountInfo(Admin admin);

  /**
   * 操作员查询（分页）
   *
   * @param currentPage
   * @param size
   * @param admin
   * @return
   */
  RespPageBean getAdminsByPage(Integer currentPage,Integer size, Admin admin);


  /**
   * 添加操作员
   * @param admin
   * @return
   */
  RespBean addAdmin(Admin admin);

  /**
   * 删除操作员
   * @param wno
   * @return
   */
  Integer delAdminByWno(String wno);

  /**
   * 更新当前操作员密码
   * @param no
   * @param oldPass
   * @param newPass
   * @return
   */
  RespBean updateCurrentAdmPass(String no, String oldPass, String newPass);

  /**
   * 更新操作员角色
   * @param adminWno
   * @param rids
   * @return
   */
  RespBean updateAdminRole(String adminWno, Integer[] rids);

  /**
   * 获取操作员最大工号
   * @return
   */
  RespBean getAdminMaxId();

  /**
   * 获取所有校职工信息
   * @return
   */
  List<AdminVo> getAllRecords();
}
